En una llamada a la API de las tiendas en línea a nuestra aplicación Rails, necesito enviar cadenas de HTML, CSS y JS para crear un modal en su interfaz. Si el HTML y el CSS no son un problema, el JS parece problemático ya que estoy dispuesto a usar la nueva Función ("script js en cadena") para agregar JS a mi modal.
Leí en todas partes que la nueva función (), como eval (), no es segura en absoluto, pero no veo otra forma de hacerlo.
Para dar más contexto, estoy sujeto a dos restricciones
import moduleX from 'moduleX' const functionX = () => { something() } const runJS = (js_string) => { const specificJS = new Function('moduleX', 'functionX', js_string) specificJS(moduleX, functionX) } const buildPopup = (popup_data) => { insertHtml(popup_data.html) insertCss(popup_data.css) runJS(popup_data.js) }¿Existe una forma más segura de hacerlo?